<?php
/**
 * Application model for Cake.
 *
 * This file is application-wide model file. You can put all
 * application-wide model-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Model
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */

App::uses('Model', 'Model');

/**
 * Application model for Cake.
 *
 * Add your application-wide methods in the class below, your models
 * will inherit them.
 *
 * @package       app.Model
 */
class AppModel extends Model {
	
	/**
	 * Monkey-Patch for find method
	 *   if there's `deleted` field defined for the model, do not fetch deleted rows 
	 * 
	 * @param string $type
	 * @param array $options
	 * @return array
	 */
	public function find($type="all", $options=array()) {
		$modelName = $this->alias;
		if(array_key_exists("deleted", $this->schema())) {
			if(!isset($options["conditions"]["Client.deleted"])) {
				$conditions = !empty($options["conditions"]) ? $options["conditions"] : array();
				$options["conditions"] = array_merge($conditions, array("{$modelName}.deleted"=>0));
			}
		}
		return parent::find($type, $options);
	}
}
